package com.jtny.nytb.equipment.dto.device;

import com.jtny.component.annotation.QueryParamField;
import com.jtny.component.entity.PageParam;
import com.jtny.component.enums.FieldMatchingTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author 智慧能源中心 - zx
 * @package com.jtny.nytb.energymonitor.equipment.vo.device
 * @fileName EquipmentInfoQueryPageParamVO.java
 * @createTime 2023年09月19日 22:56
 * @Copyright© 2023 jtny
 * 江投能源技术研究院 版权所有
 */

@ApiModel("设备分页DTO对象")
@Data
public class EquipmentInfoQueryPageParamDTO extends PageParam implements Serializable {

    @ApiModelProperty("设备id查询条件, 精确查询")
    @QueryParamField(columnName = "id", matchingType = FieldMatchingTypeEnum.IN)
    private List<Long> idList;

    /**
     * 设备编号
     */
    @ApiModelProperty("设备编号查询条件，精确查询")
    @QueryParamField(columnName = "code", matchingType = FieldMatchingTypeEnum.EQ)
    private String code;


    @ApiModelProperty("设备用途查询条件，精确查询")
    @QueryParamField(columnName = "purpose", matchingType = FieldMatchingTypeEnum.EQ)
    private String purpose;


    /**
     * 设备名称
     */
    @ApiModelProperty("设备名称查询条件，模糊查询")
    @QueryParamField(columnName = "name", matchingType = FieldMatchingTypeEnum.LIKE)
    private String name;


    /**
     * 设备类型
     */
    @ApiModelProperty("设备类型查询条件，精确查询")
    @QueryParamField(columnName = "type", matchingType = FieldMatchingTypeEnum.EQ)
    private String type;

    /**
     * 设备类型id
     */
    @ApiModelProperty("设备类型id查询条件，精确查询")
    @QueryParamField(columnName = "type_id", matchingType = FieldMatchingTypeEnum.EQ)
    private String typeId;


    /**
     * 设备品牌
     */
    @ApiModelProperty("设备品牌查询条件，精确查询")
    @QueryParamField(columnName = "brand", matchingType = FieldMatchingTypeEnum.EQ)
    private String brand;


    /**
     * 设备型号
     */
    @ApiModelProperty("设备型号查询条件，精确查询")
    @QueryParamField(columnName = "model", matchingType = FieldMatchingTypeEnum.EQ)
    private String model;


    /**
     * 所在区域
     */
    @ApiModelProperty("所在区域id查询条件，精确查询")
    @QueryParamField(columnName = "area_id", matchingType = FieldMatchingTypeEnum.EQ)
    private Long areaId;


    /**
     * 所在区域名称
     */
    @ApiModelProperty("所在区域名称查询条件，精确查询")
    @QueryParamField(columnName = "area_name", matchingType = FieldMatchingTypeEnum.EQ)
    private String areaName;

    /**
     * 所在区域名称
     */
    @ApiModelProperty("所在区域名称查询条件，精确查询")
    @QueryParamField(columnName = "area_name", matchingType = FieldMatchingTypeEnum.LIKE)
    private String areaNameLike;

    /**
     * 设备对接标识查询条件，精确查询
     */
    @ApiModelProperty("设备对接标识查询条件，精确查询")
    @QueryParamField(columnName = "dock_identifier", matchingType = FieldMatchingTypeEnum.EQ)
    private String dockIdentifier;

    /**
     * 能源分类查询条件，精确查询
     */
    @ApiModelProperty("能源分类查询条件，精确查询")
    @QueryParamField(columnName = "energy_classification", matchingType = FieldMatchingTypeEnum.EQ)
    private String energyClassification;

    /**
     * 能源分类id查询条件，精确查询
     */
    @ApiModelProperty("能源分类id查询条件，精确查询")
    @QueryParamField(columnName = "energy_classification_id", matchingType = FieldMatchingTypeEnum.EQ)
    private String energyClassificationId;

    /**
     * 1代表true测点设备，0代表false设备
     */
    @ApiModelProperty("1代表true测点设备，0代表false设备查询条件，精确查询")
    @QueryParamField(columnName = "is_measuring_point_device", matchingType = FieldMatchingTypeEnum.EQ)
    private Boolean isMeasuringPointDevice;

    @ApiModelProperty("设备状态查询条件，精确查询")
    @QueryParamField(columnName = "status", matchingType = FieldMatchingTypeEnum.EQ)
    private Integer status;

}
